package com.mcxx.modules.extremepoverty.service;

import com.mcxx.modules.miniSalvation.family.entity.DemocraticAppraisalEntity;
import com.mcxx.modules.miniSalvation.order.dto.*;
import com.mcxx.modules.miniSalvation.order.param.OrderListSearchParam;
import com.mcxx.result.BaseResult;
import com.yinhai.ta404.component.audit.vo.ExcelInfo;
import com.yinhai.ta404.core.security.vo.UserAccountVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;


public interface ExBacklogService {


    Map<String, List<String>> sendCheck(List<CheckDTO> checkList, UserAccountVo userAccountVo, String businessType,String checkType);


    byte[] getCheckReportFile(String fileKey);


    void cancelSalvationRequestTown(String orderId,  String revokeReason,UserAccountVo userAccountVo);


    Map<String, List<String>> cancelSalvationRequestTowns(List<String> orderIdList, UserAccountVo userAccountVo);


    void isCanInHouse(String orderId, UserAccountVo userAccountVo);


    void isCanInHouseRecheck(String orderId, UserAccountVo userAccountVo);


    String saveInHouseRecord(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);


    void modifyInHouseRecord(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);


    void saveSalvationAudit(OrderReviewDTO orderReviewDTO, UserAccountVo userAccountVo);


    int isCanCalcFamilySalary(String orderId);


    BaseResult<Boolean> saveFamilySalary(ExOrderSalaryDTO orderSalaryParam, UserAccountVo userAccountVo);


    int modifySalvationAudit(OrderReviewDTO orderReviewDTO, UserAccountVo userAccountVo);


    OrderStateVerifyDTO isCanAudit(String orderId, String submitType, String nextCondition, UserAccountVo userAccountVo);


    int isCanAudit4Recheck(String orderId);


    void isCanDemocraticAppraisal(String orderId, UserAccountVo userAccountVo);


    String addDemocraticAppraisal(DemocraticAppraisalEntity democraticAppraisalEntity, List<String> orderCertIdList, UserAccountVo userAccountVo);

    BaseResult<Map>  verifyHouseholdCancelFundPay(OrderApproveDTO orderApproveDTO, UserAccountVo accountVo);

    BaseResult<OrderDetailDTO> getOrderDetail(String orderId, String checkDetailStatus);


    BaseResult<OrderApproveDTO> getSalvationApprove(String orderId);


    int submitSalvationRequest(OrderReviewDTO orderReviewDTO, UserAccountVo userAccountVo);







    void isCanInHouseCounty(String orderId,UserAccountVo userAccountVo);


    String confirmInhouseRecordCounty(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);


    void isCanAuditCounty(String orderId,UserAccountVo userAccountVo);

    String saveInHouseRecordCounty(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);


    int modifyInHouseRecordCounty(OrderInHouseDTO orderInHouse, List<String> orderCertIdList, UserAccountVo userAccountVo);


    String approveSalvationRequest(OrderApproveDTO orderReviewDTO, UserAccountVo userAccountVo);

    void approveHouseholdCancel(OrderApproveDTO orderApproveDTO, UserAccountVo userAccountVo);

    BaseResult<Boolean> confirmFamilySalaryInfo(ExOrderSalaryDTO orderSalary, Map<String, String> memberMap, UserAccountVo userAccountVo);


    Map<String,Object> getInfoBeforeAudit(String orderId);


    void saveApproveSalvation(OrderApproveDTO orderApproveDTO, UserAccountVo userAccountVo);




    int chengeMemberSaveObject(String orderId,String familyId,String memberId,String type,String isMaster);


    Map<String, List<String>> exceBatchReport(List<String> orderIdList, UserAccountVo userAccountVo);

    int changDocHelpPoor(String orderId,String docHelpPoor);

    void isCanUploadCheckFile(String familyId,String orderId);

    int uploadCheckFile(MultipartFile[] files, String orderId, String reason ,String areaCode);

    void reCheckCanDemocraticAppraisal(String orderId, UserAccountVo userAccountVo);


    void isCanAuditRecheck(String orderId,String familyId,UserAccountVo userAccountVo);

    ExcelInfo exportTownSalvation(OrderListSearchParam param, UserAccountVo accountVo);


    void sendBackSys(String orderId, String content, UserAccountVo userAccountVo, String businessType);


    Map<String, Object> queryReportDetail(String orderId);


    Map<String, List<String>> sendBatchCheck(List<CheckDTO> checkList, UserAccountVo userAccountVo, String businessType,String checkType);
}
